package com.utf999.qiangmanger.entity;

import java.io.Serializable;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;

import org.hibernate.annotations.GenericGenerator;

/**
 * 用户中心所使用的尸体父类，用户中心采用关系型数据库进行存储，所以这里进行可以使用hibernate的注解标签
 * @author wenjie
 */
@MappedSuperclass
public abstract class UUIDEntity extends AbstractEntity implements Serializable {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Id
	@GenericGenerator(name = "idGenerator", strategy = "uuid")
	@GeneratedValue(generator = "idGenerator")
	protected String uid;

	public String getUid() {
		return uid;
	}

	public void setUid(String uid) {
		this.uid = uid;
	}
	
	/**
	 * 该方法用于获取对象的唯一健标识 , 以便在抽象层进行该对象memcached(或者其他方式)的存储。
	 * 如果没有返回值，该对象将不会存放在分布式缓存服务器中
	 * @return
	 */
	public abstract String getUniqueKey();
}
